package com.juyu.miliao.scheduler.service;

import com.juyu.miliao.scheduler.dao.mysql.IntegralLevelInfoDao;
import com.juyu.miliao.scheduler.domin.IntegralLevelAndTitleDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 用户积分等级
 *
 * @author bujiachao
 */
@Service
public class IntegralLevelInfoService {



    @Autowired
    private IntegralLevelInfoDao integralLevelInfoDao;


    public List<IntegralLevelAndTitleDTO> getList(){
        List<IntegralLevelAndTitleDTO> list = integralLevelInfoDao.getIntegralLevelAndTitle();
        Map<Integer,Integer> levelValueMap = new HashMap<>(40);
        levelValueMap.put(1,0);
        for(IntegralLevelAndTitleDTO obj : list){
            int integralLevelValue = levelValueMap.get(obj.getIntegralGrade());
            obj.setIntegerLevelValue(integralLevelValue);
            levelValueMap.put(obj.getIntegralGrade()+1,obj.getNextLevelValue());
        }

        return list;
    }
//
//    /**
//     * 获取某个等级的信息
//     * @param level
//     * @return
//     */
//    public IntegralLevelAndTitleDTO getIntegralLevelAndTitleDTO(int level){
//        List<IntegralLevelAndTitleDTO> list = integralLevelInfoDao.getIntegralLevelAndTitle();
//        for(IntegralLevelAndTitleDTO i:list){
//            if(i.getIntegralGrade() == level)
//                return i;
//        }
//        return null;
//    }

    public IntegralLevelAndTitleDTO getUserIntegralLevel(int integralSum) {

        List<IntegralLevelAndTitleDTO> list = getList();

        IntegralLevelAndTitleDTO integralLevelAndTitleDTO = null;
        if(list.size()>0){
            for(IntegralLevelAndTitleDTO target : list ){
                if(integralSum<target.getNextLevelValue()){
                    integralLevelAndTitleDTO = target;
                    integralLevelAndTitleDTO.setUserIntegralValue(integralSum);
                    return integralLevelAndTitleDTO;
                }
            }

            integralLevelAndTitleDTO = list.get(list.size()-1);
            integralLevelAndTitleDTO.setUserIntegralValue(integralSum);
            integralLevelAndTitleDTO.setNextLevelValue(999999);
            return integralLevelAndTitleDTO;
        }

        return null;
    }
}
